<script>
  // 原型链：
  // prototype:1、他是【函数】的属性，存放函数的公共属性和方法
  //           2、默认创建一个函数就有prototype，且它是一个对象
  // __proto__:1、他是【对象】的属性，指向的是对象的构造函数的prototype
  //           2、默认创建一个对象就有__proto__，且它是一个对象

  function test() {
    this.b = 8
  }
  console.dir(test)
  let t = new test()
  t.a = 1
  Object.prototype.c = 100
  console.log(t.a)
  console.log(t.b)
  console.log(t.c)
  console.dir(t.__proto__ === test.prototype)
  console.log(test.prototype.__proto__ === Object.prototype)
  console.log(Object.prototype.__proto__ === null)
//下面是上述代码的寻值情况
  // t:{
  //   a:1
  //   __proto__:test.prototype={
  //     b:8
  //     __proto__:Object.prototype={
  //       c:100
  //       __proto__:null
  //     }
  //   }
  // }
</script>
